package lee.study.fanshe;

//无返回值无参数
@FunctionalInterface
interface NoParameterNoReturn {//一个接口只有一个抽象方法--->函数式接口

    void test();
}

//无返回值有一个参数
@FunctionalInterface
interface OneParameterNoReturn {

    void test(int a);
}

//无返回值有多个参数
@FunctionalInterface
interface MoreParameterNoReturn {

    void test(int a, int b);
}

//有返回值无参数
@FunctionalInterface
interface NoParameterReturn {

    int test();
}

//有返回值有一个参数
@FunctionalInterface
interface OneParameterReturn {

    int test(int a);
}

//有返回值有多个参数
@FunctionalInterface
interface MoreParameterReturn {

    int test(int a, int b);
}

class Test{
    public void func(){
        System.out.println("func()");
    }
}
public class TestLambda {
    public static void main(String[] args) {

    }
    public static void main1(String[] args) {
        NoParameterNoReturn noParameterNoReturn = () -> {
            System.out.println("无返回值无参数的方法");
        };
        noParameterNoReturn.test();

        OneParameterNoReturn oneParameterNoReturn = (int a) -> {
            System.out.println("无返回值有一个参数的方法，参数a为" + a);
        };
        oneParameterNoReturn.test(111);
        //有返回值
        NoParameterReturn noParameterReturn = () -> {
            return 1;
        };
        System.out.println(noParameterReturn.test());
        //另一种写法
        MoreParameterReturn moreParameterReturn = (int a, int b) -> a + b;//写成这种形式可以省略return
        System.out.println(moreParameterReturn.test(111, 222));
    }
}
